package com.lengmou.service.impl;

import com.lengmou.dao.UsersDao;
import com.lengmou.entity.Users;
import com.lengmou.service.UsersService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
@Service("UsersService")
public class UsersServiceImpl implements UsersService {
    @Resource
    private UsersDao usersDao;
    @Override
    public Users login(Users users) {

        return usersDao.queryByUserNameAndPwd(users);
    }

    @Override
    public int reg(Users users) {
        Users userByName = getUserByName(users.getUsername());
        if(userByName==null){

            return usersDao.addUsers(users);
        }
//        已经存在同名用户名
        return -1;
    }

    @Override
    public int setUserPassword(Users user) {
        Users userById = getUserById(user.getId());
        if(userById!=null){
            userById.setPassword(user.getPassword());
            return usersDao.updateUsers(userById);
        }
//        找不到该用户
        return -1;
    }

    @Override
    public List<Users> getUsersAll() {

        return usersDao.querysAll();
    }

    @Override
    public Users getUserByName(String name) {
        return usersDao.queryByUserName(name);
    }

    @Override
    public int setUsersTel(Users users) {
        Users userById = getUserById(users.getId());
        Users user = getUsersByTel(users.getTel());
        if(user==null&&userById!=null){
            userById.setTel(users.getTel());
            return usersDao.updateUsers(userById);
        }
//        说明已经存在该手机号码
        return -1;
    }

    @Override
    public int setUsersState(Users users) {
        Users userById = getUserById(users.getId());
        if(userById!=null){
            userById.setState(users.getState());

            return usersDao.updateUsers(userById);
        }
//        不存在这个用户
        return -1;
    }

    @Override
    public int setUsersIdentity(Users users) {
        Users userById = getUserById(users.getId());
        if(userById!=null){
            userById.setIdentity(users.getIdentity());
            return usersDao.updateUsers(userById);
        }
        return -1;
    }

    @Override
    public int updateUser(Users users) {
        Users userById = getUserById(users.getId());
        if(userById!=null){
            return usersDao.updateUsers(users);
        }
        return -1;
    }

    @Override
    public int addUsersMoney(int id, double money) {
        Users userById = getUserById(id);
        if(userById!=null){
            userById.setMoney(userById.getMoney()+money);
            return usersDao.updateUsers(userById);
        }
        return -1;
    }

    @Override
    public int subUsersMoney(int id, double money) {
        Users userById = getUserById(id);
        if(userById!=null){
            if(userById.getMoney()>money){

                userById.setMoney(userById.getMoney()-money);
                return usersDao.updateUsers(userById);
            }
//            该用户没有这么多的钱
            return -2;
        }
//        找不到用户
        return -1;
    }

    @Override
    public int setUserMoney(Users users) {
        Users userById = getUserById(users.getId());
        if(userById!=null){
            userById.setMoney(users.getMoney());
            return usersDao.updateUsers(userById);
        }
//     找不到该用户
        return -1;
    }

    @Override
    public int deleteUsers(int id) {
        Users userById = getUserById(id);
        if(userById!=null){
            return usersDao.deleteUsers(id);
        }
        return -1;
    }

    @Override
    public Users getUsersByTel(String tel) {
        return usersDao.queryByTel(tel);
    }

//    根据用户id获取用户
    @Override
    public Users getUserById(int id) {
        return usersDao.queryByID(id);
    }
}
